<TagAttribute("scenario_structure_bsp","sbsp","????","????",5,648)>
Public Class SCENARIO_STRUCTURE_BSP_TAG
Inherits HaloTag
Public Const Extension as String = "scenario_structure_bsp"
Public Const FourCC as String = "sbsp"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 5
Public Const HeaderLength as Integer = 648

''' <summary>
''' 
''' </summary>
<TagField("lightmaps", 16, 10)>
Public lightmaps as New TAG_REFERENCE

''' <summary>
''' height below which vehicles get pushed up by an unstoppable force
''' </summary>
<TagField("vehicle floor:world units", 1, 0)>
Public vehicle_floor as Single

''' <summary>
''' height above which vehicles get pushed down by an unstoppable force
''' </summary>
<TagField("vehicle ceiling:world units", 1, 0)>
Public vehicle_ceiling as Single

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("default ambient color", 3, 2)>
Public default_ambient_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("default distant light 0 color", 3, 2)>
Public default_distant_light_0_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("default distant light 0 direction", 3, 2)>
Public default_distant_light_0_direction as Single()

''' <summary>
''' 
''' </summary>
<TagField("default distant light 1 color", 3, 2)>
Public default_distant_light_1_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("default distant light 1 direction", 3, 2)>
Public default_distant_light_1_direction as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("default reflection tint", 4, 3)>
Public default_reflection_tint as Single()

''' <summary>
''' 
''' </summary>
<TagField("default shadow vector", 3, 2)>
Public default_shadow_vector as Single()

''' <summary>
''' 
''' </summary>
<TagField("default shadow color", 3, 2)>
Public default_shadow_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_3 as Byte()

''' <summary>
''' structure_collision_materials_block
''' </summary>
<TagField("collision materials", 20, 11)>
Public collision_materials as List(Of COLLISION_MATERIALS_BLOCK)

''' <summary>
''' bsp
''' </summary>
<TagField("collision bsp", 96, 11)>
Public collision_bsp as List(Of COLLISION_BSP_BLOCK)

''' <summary>
''' structure_bsp_node_block
''' </summary>
<TagField("nodes", 6, 11)>
Public nodes as List(Of NODES_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("world bounds x", 2, 1)>
Public world_bounds_x as Single()

''' <summary>
''' 
''' </summary>
<TagField("world bounds y", 2, 1)>
Public world_bounds_y as Single()

''' <summary>
''' 
''' </summary>
<TagField("world bounds z", 2, 1)>
Public world_bounds_z as Single()

''' <summary>
''' structure_bsp_leaf_block
''' </summary>
<TagField("leaves", 16, 11)>
Public leaves as List(Of LEAVES_BLOCK)

''' <summary>
''' structure_bsp_surface_reference_block
''' </summary>
<TagField("leaf surfaces", 8, 11)>
Public leaf_surfaces as List(Of LEAF_SURFACES_BLOCK)

''' <summary>
''' structure_bsp_surface_block
''' </summary>
<TagField("surfaces", 6, 11)>
Public surfaces as List(Of SURFACES_BLOCK)

''' <summary>
''' structure_bsp_lightmap_block
''' </summary>
<TagField("structure lightmaps", 32, 11)>
Public structure_lightmaps as List(Of STRUCTURE_LIGHTMAPS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_4 as Byte()

''' <summary>
''' structure_bsp_lens_flare_block
''' </summary>
<TagField("lens flares", 16, 11)>
Public lens_flares as List(Of LENS_FLARES_BLOCK)

''' <summary>
''' structure_bsp_lens_flare_marker_block
''' </summary>
<TagField("lens flare markers", 16, 11)>
Public lens_flare_markers as List(Of LENS_FLARE_MARKERS_BLOCK)

''' <summary>
''' structure_bsp_cluster_block
''' </summary>
<TagField("clusters", 104, 11)>
Public clusters as List(Of CLUSTERS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("cluster data", 1, 22)>
Public cluster_data as New DATA_CONTAINER

''' <summary>
''' structure_bsp_cluster_portal_block
''' </summary>
<TagField("cluster portals", 64, 11)>
Public cluster_portals as List(Of CLUSTER_PORTALS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_5 as Byte()

''' <summary>
''' structure_bsp_breakable_surface_block
''' </summary>
<TagField("breakable surfaces", 48, 11)>
Public breakable_surfaces as List(Of BREAKABLE_SURFACES_BLOCK)

''' <summary>
''' structure_bsp_fog_plane_block
''' </summary>
<TagField("fog planes", 32, 11)>
Public fog_planes as List(Of FOG_PLANES_BLOCK)

''' <summary>
''' structure_bsp_fog_region_block
''' </summary>
<TagField("fog regions", 40, 11)>
Public fog_regions as List(Of FOG_REGIONS_BLOCK)

''' <summary>
''' structure_bsp_fog_palette_block
''' </summary>
<TagField("fog palette", 136, 11)>
Public fog_palette as List(Of FOG_PALETTE_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_6 as Byte()

''' <summary>
''' structure_bsp_weather_palette_block
''' </summary>
<TagField("weather palette", 240, 11)>
Public weather_palette as List(Of WEATHER_PALETTE_BLOCK)

''' <summary>
''' structure_bsp_weather_polyhedron_block
''' </summary>
<TagField("weather polyhedra", 32, 11)>
Public weather_polyhedra as List(Of WEATHER_POLYHEDRA_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_7 as Byte()

''' <summary>
''' structure_bsp_pathfinding_surfaces_block
''' </summary>
<TagField("pathfinding surfaces", 1, 11)>
Public pathfinding_surfaces as List(Of PATHFINDING_SURFACES_BLOCK)

''' <summary>
''' structure_bsp_pathfinding_edges_block
''' </summary>
<TagField("pathfinding edges", 1, 11)>
Public pathfinding_edges as List(Of PATHFINDING_EDGES_BLOCK)

''' <summary>
''' structure_bsp_background_sound_palette_block
''' </summary>
<TagField("background sound palette", 116, 11)>
Public background_sound_palette as List(Of BACKGROUND_SOUND_PALETTE_BLOCK)

''' <summary>
''' structure_bsp_sound_environment_palette_block
''' </summary>
<TagField("sound environment palette", 80, 11)>
Public sound_environment_palette as List(Of SOUND_ENVIRONMENT_PALETTE_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("sound PAS data", 1, 22)>
Public sound_PAS_data as New DATA_CONTAINER

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_8 as Byte()

''' <summary>
''' structure_bsp_marker_block
''' </summary>
<TagField("markers", 60, 11)>
Public markers as List(Of MARKERS_BLOCK)

''' <summary>
''' structure_bsp_detail_object_data_block
''' </summary>
<TagField("detail objects", 64, 11)>
Public detail_objects as List(Of DETAIL_OBJECTS_BLOCK)

''' <summary>
''' structure_bsp_runtime_decal_block
''' </summary>
<TagField("runtime decals", 16, 11)>
Public runtime_decals as List(Of RUNTIME_DECALS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_9 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_10 as Byte()

''' <summary>
''' global_map_leaf_block
''' </summary>
<TagField("leaf map leaves", 24, 11)>
Public leaf_map_leaves as List(Of LEAF_MAP_LEAVES_BLOCK)

''' <summary>
''' global_leaf_portal_block
''' </summary>
<TagField("leaf map portals", 24, 11)>
Public leaf_map_portals as List(Of LEAF_MAP_PORTALS_BLOCK)
Public Class COLLISION_MATERIALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("shader", 16, 10)>
Public shader as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

End Class
Public Class COLLISION_BSP_BLOCK

''' <summary>
''' bsp3d node
''' </summary>
<TagField("bsp3d nodes", 12, 11)>
Public bsp3d_nodes as List(Of BSP3D_NODES_BLOCK)

''' <summary>
''' plane
''' </summary>
<TagField("planes", 16, 11)>
Public planes as List(Of PLANES_BLOCK)

''' <summary>
''' leaf
''' </summary>
<TagField("leaves", 8, 11)>
Public leaves as List(Of LEAVES_BLOCK)

''' <summary>
''' bsp2d reference
''' </summary>
<TagField("bsp2d references", 8, 11)>
Public bsp2d_references as List(Of BSP2D_REFERENCES_BLOCK)

''' <summary>
''' bsp2d node
''' </summary>
<TagField("bsp2d nodes", 20, 11)>
Public bsp2d_nodes as List(Of BSP2D_NODES_BLOCK)

''' <summary>
''' surface
''' </summary>
<TagField("surfaces", 12, 11)>
Public surfaces as List(Of SURFACES_BLOCK)

''' <summary>
''' edge
''' </summary>
<TagField("edges", 24, 11)>
Public edges as List(Of EDGES_BLOCK)

''' <summary>
''' vertex
''' </summary>
<TagField("vertices", 16, 11)>
Public vertices as List(Of VERTICES_BLOCK)
Public Class BSP3D_NODES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 1, 4)>
Public plane as Integer

''' <summary>
''' 
''' </summary>
<TagField("back child", 1, 4)>
Public back_child as Integer

''' <summary>
''' 
''' </summary>
<TagField("front child", 1, 4)>
Public front_child as Integer

End Class
Public Class PLANES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 4, 3)>
Public plane as Single()

End Class
Public Class LEAVES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("flags*", 1, 19)>
Public flags as Short

''' <summary>
''' 
''' </summary>
<TagField("bsp2d reference count", 1, 23)>
Public bsp2d_reference_count as Short

''' <summary>
''' 
''' </summary>
<TagField("first bsp2d reference", 1, 4)>
Public first_bsp2d_reference as Integer

End Class
Public Class BSP2D_REFERENCES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 1, 4)>
Public plane as Integer

''' <summary>
''' 
''' </summary>
<TagField("bsp2d node", 1, 4)>
Public bsp2d_node as Integer

End Class
Public Class BSP2D_NODES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 3, 2)>
Public plane as Single()

''' <summary>
''' 
''' </summary>
<TagField("left child", 1, 4)>
Public left_child as Integer

''' <summary>
''' 
''' </summary>
<TagField("right child", 1, 4)>
Public right_child as Integer

End Class
Public Class SURFACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 1, 4)>
Public plane as Integer

''' <summary>
''' 
''' </summary>
<TagField("first edge", 1, 4)>
Public first_edge as Integer

''' <summary>
''' 
''' </summary>
<TagField("flags*", 1, 18)>
Public flags as Byte

''' <summary>
''' 
''' </summary>
<TagField("breakable surface", 1, 9)>
Public breakable_surface as Byte

''' <summary>
''' 
''' </summary>
<TagField("material", 1, 23)>
Public material as Short

End Class
Public Class EDGES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("start vertex", 1, 4)>
Public start_vertex as Integer

''' <summary>
''' 
''' </summary>
<TagField("end vertex", 1, 4)>
Public end_vertex as Integer

''' <summary>
''' 
''' </summary>
<TagField("forward edge", 1, 4)>
Public forward_edge as Integer

''' <summary>
''' 
''' </summary>
<TagField("reverse edge", 1, 4)>
Public reverse_edge as Integer

''' <summary>
''' 
''' </summary>
<TagField("left surface", 1, 4)>
Public left_surface as Integer

''' <summary>
''' 
''' </summary>
<TagField("right surface", 1, 4)>
Public right_surface as Integer

End Class
Public Class VERTICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("point", 3, 2)>
Public point as Single()

''' <summary>
''' 
''' </summary>
<TagField("first edge", 1, 4)>
Public first_edge as Integer

End Class

End Class
Public Class NODES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 6, -1)>
Public padding as Byte()

End Class
Public Class LEAVES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 6, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("cluster", 1, 23)>
Public cluster as Short

''' <summary>
''' 
''' </summary>
<TagField("surface reference count", 1, 23)>
Public surface_reference_count as Short

''' <summary>
''' 
''' </summary>
<TagField("surface references", 1, 4)>
Public surface_references as Integer

End Class
Public Class LEAF_SURFACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("surface", 1, 4)>
Public surface as Integer

''' <summary>
''' 
''' </summary>
<TagField("node", 1, 4)>
Public node as Integer

End Class
Public Class SURFACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("vertex a", 1, 23)>
Public vertex_a as Short

''' <summary>
''' 
''' </summary>
<TagField("vertex b", 1, 23)>
Public vertex_b as Short

''' <summary>
''' 
''' </summary>
<TagField("vertex c", 1, 23)>
Public vertex_c as Short

End Class
Public Class STRUCTURE_LIGHTMAPS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("bitmap", 1, 23)>
Public bitmap as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_1 as Byte()

''' <summary>
''' structure_bsp_material_block
''' </summary>
<TagField("structure materials", 256, 11)>
Public structure_materials as List(Of STRUCTURE_MATERIALS_BLOCK)
Public Class STRUCTURE_MATERIALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("shader", 16, 10)>
Public shader as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("shader permutation", 1, 23)>
Public shader_permutation as Short

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags as Short

''' <summary>
''' 
''' </summary>
<TagField("surfaces", 1, 4)>
Public surfaces as Integer

''' <summary>
''' 
''' </summary>
<TagField("surface count", 1, 4)>
Public surface_count as Integer

''' <summary>
''' 
''' </summary>
<TagField("centroid", 3, 2)>
Public centroid as Single()

''' <summary>
''' 
''' </summary>
<TagField("ambient color", 3, 2)>
Public ambient_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("distant light count", 1, 23)>
Public distant_light_count as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("distant light 0 color", 3, 2)>
Public distant_light_0_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("distant light 0 direction", 3, 2)>
Public distant_light_0_direction as Single()

''' <summary>
''' 
''' </summary>
<TagField("distant light 1 color", 3, 2)>
Public distant_light_1_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("distant light 1 direction", 3, 2)>
Public distant_light_1_direction as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("reflection tint", 4, 3)>
Public reflection_tint as Single()

''' <summary>
''' 
''' </summary>
<TagField("shadow vector", 3, 2)>
Public shadow_vector as Single()

''' <summary>
''' 
''' </summary>
<TagField("shadow color", 3, 2)>
Public shadow_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("plane", 4, 3)>
Public plane as Single()

''' <summary>
''' 
''' </summary>
<TagField("breakable surface", 1, 23)>
Public breakable_surface as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("vertex buffer", 20, 12)>
Public vertex_buffer as New DATA_CONTAINER

''' <summary>
''' 
''' </summary>
<TagField("lightmap buffer", 20, 12)>
Public lightmap_buffer as New DATA_CONTAINER

''' <summary>
''' 
''' </summary>
<TagField("uncompressed vertices", 1, 28)>
Public uncompressed_vertices as New DATA_CONTAINER

''' <summary>
''' 
''' </summary>
<TagField("compressed vertices", 1, 29)>
Public compressed_vertices as New DATA_CONTAINER

End Class

End Class
Public Class LENS_FLARES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("lens flare", 16, 10)>
Public lens_flare as New TAG_REFERENCE

End Class
Public Class LENS_FLARE_MARKERS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("position", 3, 2)>
Public position as Single()

''' <summary>
''' 
''' </summary>
<TagField("direction i-component", 1, 9)>
Public direction_i as Byte

''' <summary>
''' 
''' </summary>
<TagField("direction j-component", 1, 9)>
Public direction_j as Byte

''' <summary>
''' 
''' </summary>
<TagField("direction k-component", 1, 9)>
Public direction_k as Byte

''' <summary>
''' 
''' </summary>
<TagField("lens flare index", 1, 9)>
Public lens_flare_index as Byte

End Class
Public Class CLUSTERS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("sky", 1, 23)>
Public sky as Short

''' <summary>
''' 
''' </summary>
<TagField("fog", 1, 23)>
Public fog as Short

''' <summary>
''' 
''' </summary>
<TagField("background sound", 1, 23)>
Public background_sound as Short

''' <summary>
''' 
''' </summary>
<TagField("sound environment", 1, 23)>
Public sound_environment as Short

''' <summary>
''' 
''' </summary>
<TagField("weather", 1, 23)>
Public weather as Short

''' <summary>
''' 
''' </summary>
<TagField("transition structure bsp", 1, 23)>
Public transition_structure_bsp as Short

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_1 as Byte()

''' <summary>
''' predicted_resource_block
''' </summary>
<TagField("predicted resources", 8, 11)>
Public predicted_resources as List(Of PREDICTED_RESOURCES_BLOCK)

''' <summary>
''' structure_bsp_subcluster_block
''' </summary>
<TagField("subclusters", 36, 11)>
Public subclusters as List(Of SUBCLUSTERS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("first lens flare marker index", 1, 23)>
Public first_lens_flare_marker_index as Short

''' <summary>
''' 
''' </summary>
<TagField("lens flare marker count", 1, 23)>
Public lens_flare_marker_count as Short

''' <summary>
''' structure_bsp_cluster_surface_index_block
''' </summary>
<TagField("surface indices", 4, 11)>
Public surface_indices as List(Of SURFACE_INDICES_BLOCK)

''' <summary>
''' structure_bsp_mirror_block
''' </summary>
<TagField("mirrors", 64, 11)>
Public mirrors as List(Of MIRRORS_BLOCK)

''' <summary>
''' structure_bsp_cluster_portal_index_block
''' </summary>
<TagField("portals", 2, 11)>
Public portals as List(Of PORTALS_BLOCK)
Public Class PREDICTED_RESOURCES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("type", 1, 17)>
Public type as Short

''' <summary>
''' 
''' </summary>
<TagField("resource index", 1, 23)>
Public resource_index as Short

''' <summary>
''' 
''' </summary>
<TagField("tag index", 1, 4)>
Public tag_index as Integer

End Class
Public Class SUBCLUSTERS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("world bounds x", 2, 1)>
Public world_bounds_x as Single()

''' <summary>
''' 
''' </summary>
<TagField("world bounds y", 2, 1)>
Public world_bounds_y as Single()

''' <summary>
''' 
''' </summary>
<TagField("world bounds z", 2, 1)>
Public world_bounds_z as Single()

''' <summary>
''' structure_bsp_subcluster_surface_index_block
''' </summary>
<TagField("surface indices", 4, 11)>
Public surface_indices as List(Of SURFACE_INDICES_BLOCK)
Public Class SURFACE_INDICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("index", 1, 4)>
Public index as Integer

End Class

End Class
Public Class SURFACE_INDICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("index", 1, 4)>
Public index as Integer

End Class
Public Class MIRRORS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 4, 3)>
Public plane as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("shader", 16, 10)>
Public shader as New TAG_REFERENCE

''' <summary>
''' structure_bsp_mirror_vertex_block
''' </summary>
<TagField("vertices", 12, 11)>
Public vertices as List(Of VERTICES_BLOCK)
Public Class VERTICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("point", 3, 2)>
Public point as Single()

End Class

End Class
Public Class PORTALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("portal", 1, 23)>
Public portal as Short

End Class

End Class
Public Class CLUSTER_PORTALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("front cluster", 1, 23)>
Public front_cluster as Short

''' <summary>
''' 
''' </summary>
<TagField("back cluster", 1, 23)>
Public back_cluster as Short

''' <summary>
''' 
''' </summary>
<TagField("plane index", 1, 4)>
Public plane_index as Integer

''' <summary>
''' 
''' </summary>
<TagField("centroid", 3, 2)>
Public centroid as Single()

''' <summary>
''' 
''' </summary>
<TagField("bounding radius", 1, 0)>
Public bounding_radius as Single

''' <summary>
''' 
''' </summary>
<TagField("flags*", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding as Byte()

''' <summary>
''' structure_bsp_cluster_portal_vertex_block
''' </summary>
<TagField("vertices", 12, 11)>
Public vertices as List(Of VERTICES_BLOCK)
Public Class VERTICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("point", 3, 2)>
Public point as Single()

End Class

End Class
Public Class BREAKABLE_SURFACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("centroid", 3, 2)>
Public centroid as Single()

''' <summary>
''' 
''' </summary>
<TagField("radius", 1, 0)>
Public radius as Single

''' <summary>
''' 
''' </summary>
<TagField("collision surface index", 1, 4)>
Public collision_surface_index as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding as Byte()

End Class
Public Class FOG_PLANES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("front region", 1, 23)>
Public front_region as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("plane", 4, 3)>
Public plane as Single()

''' <summary>
''' structure_bsp_fog_plane_vertex_block
''' </summary>
<TagField("vertices", 12, 11)>
Public vertices as List(Of VERTICES_BLOCK)
Public Class VERTICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("point", 3, 2)>
Public point as Single()

End Class

End Class
Public Class FOG_REGIONS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 36, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("fog palette", 1, 23)>
Public fog_palette as Short

''' <summary>
''' 
''' </summary>
<TagField("weather palette", 1, 23)>
Public weather_palette as Short

End Class
Public Class FOG_PALETTE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("name^", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("fog", 16, 10)>
Public fog as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("fog scale function", 32, 8)>
Public fog_scale_function as String

''' <summary>
''' 
''' </summary>
<TagField("", 52, -1)>
Public padding_1 as Byte()

End Class
Public Class WEATHER_PALETTE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("name^", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("particle system", 16, 10)>
Public particle_system as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("particle system scale function", 32, 8)>
Public particle_system_scale_function as String

''' <summary>
''' 
''' </summary>
<TagField("", 44, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("wind", 16, 10)>
Public wind as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("wind direction", 3, 2)>
Public wind_direction as Single()

''' <summary>
''' 
''' </summary>
<TagField("wind magnitude", 1, 0)>
Public wind_magnitude as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("wind scale function", 32, 8)>
Public wind_scale_function as String

''' <summary>
''' 
''' </summary>
<TagField("", 44, -1)>
Public padding_3 as Byte()

End Class
Public Class WEATHER_POLYHEDRA_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("bounding sphere center", 3, 2)>
Public bounding_sphere_center as Single()

''' <summary>
''' 
''' </summary>
<TagField("bounding sphere radius", 1, 0)>
Public bounding_sphere_radius as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' structure_bsp_weather_polyhedron_plane_block
''' </summary>
<TagField("planes", 16, 11)>
Public planes as List(Of PLANES_BLOCK)
Public Class PLANES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane", 4, 3)>
Public plane as Single()

End Class

End Class
Public Class PATHFINDING_SURFACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("data", 1, 9)>
Public data as Byte

End Class
Public Class PATHFINDING_EDGES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("midpoint", 1, 9)>
Public midpoint as Byte

End Class
Public Class BACKGROUND_SOUND_PALETTE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("name^", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("background sound", 16, 10)>
Public background_sound as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("scale function", 32, 8)>
Public scale_function as String

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_1 as Byte()

End Class
Public Class SOUND_ENVIRONMENT_PALETTE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("name^", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("sound environment", 16, 10)>
Public sound_environment as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

End Class
Public Class MARKERS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("name", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("rotation", 4, 3)>
Public rotation as Single()

''' <summary>
''' 
''' </summary>
<TagField("position", 3, 2)>
Public position as Single()

End Class
Public Class DETAIL_OBJECTS_BLOCK

''' <summary>
''' global_detail_object_cells_block
''' </summary>
<TagField("cells", 32, 11)>
Public cells as List(Of CELLS_BLOCK)

''' <summary>
''' global_detail_object_block
''' </summary>
<TagField("instances", 6, 11)>
Public instances as List(Of INSTANCES_BLOCK)

''' <summary>
''' global_detail_object_counts_block
''' </summary>
<TagField("counts", 2, 11)>
Public counts as List(Of COUNTS_BLOCK)

''' <summary>
''' global_z_reference_vector_block
''' </summary>
<TagField("z reference vectors", 16, 11)>
Public z_reference_vectors as List(Of Z_REFERENCE_VECTORS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding as Byte()
Public Class CELLS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 23)>
Public unknown as Short

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 23)>
Public unknown_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 23)>
Public unknown_2 as Short

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 23)>
Public unknown_3 as Short

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 4)>
Public unknown_4 as Integer

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 4)>
Public unknown_5 as Integer

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 4)>
Public unknown_6 as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding as Byte()

End Class
Public Class INSTANCES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 9)>
Public unknown as Byte

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 9)>
Public unknown_1 as Byte

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 9)>
Public unknown_2 as Byte

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 9)>
Public unknown_3 as Byte

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 23)>
Public unknown_4 as Short

End Class
Public Class COUNTS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 23)>
Public unknown as Short

End Class
Public Class Z_REFERENCE_VECTORS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 0)>
Public unknown as Single

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 0)>
Public unknown_1 as Single

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 0)>
Public unknown_2 as Single

''' <summary>
''' 
''' </summary>
<TagField("*", 1, 0)>
Public unknown_3 as Single

End Class

End Class
Public Class RUNTIME_DECALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding as Byte()

End Class
Public Class LEAF_MAP_LEAVES_BLOCK

''' <summary>
''' map_leaf_face_block
''' </summary>
<TagField("faces", 16, 11)>
Public faces as List(Of FACES_BLOCK)

''' <summary>
''' map_leaf_portal_index_block
''' </summary>
<TagField("portal indices", 4, 11)>
Public portal_indices as List(Of PORTAL_INDICES_BLOCK)
Public Class FACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("node index", 1, 4)>
Public node_index as Integer

''' <summary>
''' map_leaf_face_vertex_block
''' </summary>
<TagField("vertices", 8, 11)>
Public vertices as List(Of VERTICES_BLOCK)
Public Class VERTICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("vertex", 2, 1)>
Public vertex as Single()

End Class

End Class
Public Class PORTAL_INDICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("portal index", 1, 4)>
Public portal_index as Integer

End Class

End Class
Public Class LEAF_MAP_PORTALS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("plane index", 1, 4)>
Public plane_index as Integer

''' <summary>
''' 
''' </summary>
<TagField("back leaf index", 1, 4)>
Public back_leaf_index as Integer

''' <summary>
''' 
''' </summary>
<TagField("front leaf index", 1, 4)>
Public front_leaf_index as Integer

''' <summary>
''' leaf_portal_vertex_block
''' </summary>
<TagField("vertices", 12, 11)>
Public vertices as List(Of VERTICES_BLOCK)
Public Class VERTICES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("point", 3, 2)>
Public point as Single()

End Class

End Class

End Class
